package com.smartcommunity.dao.village;

import com.smartcommunity.entity.people.RealPower;
import com.smartcommunity.entity.village.RealPeopleLabel;
import com.smartcommunity.entity.village.RealPowerOrg;
import com.smartcommunity.entity.village.SixStatisticsEntity;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;
import java.util.Map;

/**
 * @author heweiwei
 * @date 2018/7/16
 */
@Mapper
public interface RealPowerOrgDao {
    /**
     * 批量入库实有力量统计
     * @param realPowerOrgs 实有力量统计列表
     */
    void addRealPowers(List<RealPowerOrg> realPowerOrgs);

    /**
     * 添加或修改实有力量
     * @param realPowerOrg
     */
    void addOrUpdateRealPower(RealPowerOrg realPowerOrg);

    /**
     * 根据组织机构id获取对应的小区实有力量，并可以按照小区名进行筛选
     * @param param 请求参数
     * @return 实有力量列表
     */
    List<Object> getRealPowerOrgs(Map<String, Object> param);

    /**
     * 按照行政区划获取实有力量
     * @param param 请求参数，包括组织机构标识rootId以及当前用户对于的小区编号字符串集villageCodes
     * @return 实有力量统计
     */
    RealPowerOrg getRealPowerStatisticsGruopByRootId(Map<String, Object> param);

    /**
     * 获取实有力量记录总数
     * @return 记录数
     */
    Integer getRealPowerOrgCount();
    Integer getRealPowerCount();


    /***
     * @Desc :根据条件查询实有力量
     * @Param ： [param] 查询条件
     * */
    List<RealPower> getRealPowers(Map param);


    RealPower getRealPower(String id);
    /***
     * @Desc: 修改实有力量
     * */
    int  updateRealPower(List param);

    /**
     * 修改实有力量基本信息
     * @param map
     */
    void updateRealPowerFromPeople(Map<String, Object> map);

    /**
     * @Desc: 删除实有力量
     * */
    int  deleteRealPower(List param);
    int deleteRealPowerByVillageCode(String villageCode);
    /**
     * @Desc： 实有力量新增
    **/
    int  insertRealPower(List param);

    /**
     * 删除实有力量任务标签
     * @param param
     * @return
     */
    int  deleteRealPowerLabel(Map param);

    /**
     * 删除指定标签
     * @param param
     * @return
     */
    int deleteRealPowerLabelByLabel(Map param);
    /**
     * 新增实有力量人员标签
     * @param param
     * @return
     */
    int inserRealPowerLabel(List param);

    /**
     * 实有力量图片更新
     * @param param
     * @return
     */
    int updateBatchRealPower(List param);
    /**
     * @Description:
     * @param:
     * @return: 
     * @author: minsheng
     * @date: 2019/1/17 14:58
     */
    Integer getRealPoweCount(Map param);
    /**
     * @Description: 根据身份证号和标签查询信息
     * @param:
     * @return:
     * @auther: minsheng
     * @date: 2019/5/9 13:14
     */
    RealPeopleLabel getRealPoweLabel(Map param);


    /**
     * @Description: 统计实有力量信息
     * @param: map
     * @return: List<RealPeopleLabel>
     * @author: minsheng
     * @date: 2019/1/5 11:56
     */
    Integer countRealPowerByVillage(Map<String, Object> map);

    List<SixStatisticsEntity>  realPowerCountGroupByVillage();

    List<RealPower> getRealPowerByNoSelf(Map<String, Object> map);
}
